﻿/*
============================================================================
文件名    ： account.js
完全限定名： /scripts/account.js
作者      ： 陈存腾
创建时间  ： 2012-04-18
修改时间  ： 
版本      ：
说明      ： 账户相关javascript操作
============================================================================
*/

/************************************************************************/
/* 登录页面 account/Login.aspx                                          */
/************************************************************************/

// 警告信息
var warn = {
    show: function (id, text) {
        document.getElementById(id).innerHTML = "<span class='warn_tips'><span class='warn_tips_icon'></span>" + text + "</span>";
    },
    hide: function (id) {
        document.getElementById(id).innerHTML = '';
    }
}

// 错误信息
var error = {
    show: function (id, text) {
        document.getElementById(id).innerHTML = "<span class='error_tips'><span class='error_tips_icon'></span>" + text + "</span>";
    },
    hide: function (id) {
        document.getElementById(id).innerHTML = '';
    }
}

// 通过验证
var success = {
    show: function (id) {
        document.getElementById(id).innerHTML = "<span class='check_right'></span>";
    },
    hide: function (id) {
        document.getElementById(id).innerHTML = '';
    }
}

// 登录状态信息
var state = {
    show: function (error, text) {
        $icon = $("#login_state_icon");
        $text = $("#login_state_text");

        $icon.css("opacity", 0);
        if (error) {
            $icon.css("background-position", "-96px -48px");
        }
        else {
            $icon.css("background-position", "-48px -48px");
        }
        $icon.stop();
        $icon.fadeTo(1500, 1);

        $text.css("opacity", 0);
        $text[0].innerHTML = text;
        $text.css("padding-top", "30px");
        $text.stop().animate({ paddingTop: "15px", opacity: "1" }, 1500);
    },
    hide: function () {
        $icon = $("#login_state_icon");
        $text = $("#login_state_text");

        $icon.css("opacity", 0);
        $text.css("opacity", 0);
        $icon.stop();
        $text.stop();
        $text[0].innerHTML = "";
    }
}

// 输入框获得焦点，切换title图片为激活状态
function title_focus() {
    var input = event.srcElement || event.target;
    if (!input) {
        return false;
    }
    document.getElementById(input.id + "_title").style.backgroundPositionY = "-28px";
}

// 输入框失去焦点，切换title图片为普通状态
function title_blur() {
    var input = event.srcElement || event.target;
    if (!input) {
        return false;
    }
    document.getElementById(input.id + "_title").style.backgroundPositionY = "0px";
}

// 检查账号
function check_id() {
    //var id = (event.srcElement || event.target).value;
    var id = document.getElementById("login_id_input").value;
    id = id.trim();
    if ((!id) || (id.length == 0)) {
        error.show('login_id_input_error', '请输入帐号。');
        return false;
    }
    else if (id.length < 3) {
        error.show('login_id_input_error', '账号长度过短。');
        return false;
    }
    else {
        var patrn = /^[\w]{3,16}$/g;
        if (!patrn.test(id)) {
            error.show('login_id_input_error', "您的输入不合法。");
            return false;
        }
    }
    error.hide('login_id_input_error');
    return true;
}

// 检查密码
function check_pwd() {
    var pwd = document.getElementById("login_pwd_input").value;
    if ((!pwd) || (pwd.length == 0)) {
        error.show('login_pwd_input_error', "请输入密码。");
        return false;
    }
    else if (pwd.length < 4) {
        error.show('login_pwd_input_error', "密码长度过短。");
        return false;
    }
    error.hide('login_pwd_input_error');
    return true;
}

// 检查验证码
function check_code() {
    var code = document.getElementById("login_code_input").value;
    if (code.length == 0) {
        error.show('login_code_input_error', "请输入验证码。");
        return false;
    }
    else if (code != Cookie.get("CheckCode")) {
        error.show('login_code_input_error', '验证码错误！');
        return false;
    }
    success.show('login_code_input_error');
    return true;
}

// 显示验证码图片
function show_code() {
    var $img = $("#login_code_img");
    if ("opacity_0" == $img[0].className) {
        $img[0].src = '/include/CheckCode.aspx?' + Math.random();
        $img.stop().fadeTo(1500, 1);
        $img[0].className = "";
    }
}

// 更换验证码图片
function chenge_code() {
    var $img = $("#login_code_img");
    $img.css("opacity", 0);
    $img[0].src = '/include/CheckCode.aspx?' + Math.random();
    $img.stop().fadeTo(1500, 1);
}

// 登录
function login() {
    state.hide();
    if (check_id() && check_pwd() && check_code()) {
        var id = $("#login_id_input");
        var pwd = $("#login_pwd_input");
        var code = $("#login_code_input");
        var loading = $("#login_submit_loading");
        // 显示loading动画
        loading.removeClass("opacity_0");

        $.ajax({
            url: '../handler/AccountHandler.ashx',
            type: 'get',
            dataType: "json",
            data: { cmd: 'login', id: id.val().trim(), pwd: pwd.val() },
            success: function (result) {
                // 隐藏loading动画
                loading.addClass("opacity_0");
                //"{"state":"成功/失败","data":"用户数据/失败原因"}"
                if (result.state && ("成功" == result.state)) {
                    state.hide();
                    // 解析data数据

                    // 页面跳转
                    window.location.href = "/Default.aspx";
                    window.navigate("/Default.aspx");
                }
                else {
                    if (result.data) {
                        state.show(1, result.data);
                    }
                    else {
                        state.show(1, "未知错误");
                    }
                    chenge_code();
                    code[0].value = "";
                }
            },
            timeout: 3000,
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                if ("timeout" == textStatus) {
                    state.show(0, "网络有点慢呀……");
                }
                else {
                    state.show(1, textStatus);
                    chenge_code();
                    loading.addClass("opacity_0");
                }
            }
        });
    }
}



//$.ajax({
//    url: '../handler/AccountHandler.ashx',
//    type: 'get',
//    dataType: "json",
//    data: { cmd: 'changepwd', newpwd: "111111" },
//    success: function (result) {
//        alert(1)
//    },
//    timeout: 3000,
//    error: function (XMLHttpRequest, textStatus, errorThrown) {
//        if ("timeout" == textStatus) {
//            state.show(0, "网络有点慢呀……");
//        }
//        else {
//            state.show(1, textStatus);
//            chenge_code();
//            loading.addClass("opacity_0");
//        }
//    }
//});